Systems for supporting human-computer interaction are increasingly becoming more sophisticated. Whereas humans have traditionally been restricted to interacting with computers in highly structured ways, advances in conversational understanding are allowing computers to process input that is provided in a natural language. Processing natural language inputs, particularly when the input requests the computer to perform a task, may be complex. Among other constraints, the computer may need to determine the nature of the requested task, identify information needed to perform the task, and solicit any unknown needed information from the user (or elsewhere).
Problematically, when these capabilities are combined together in a single component, it can become difficult or time-consuming to update the component to adapt to new types of tasks, to naturally converse with users in different manners, to provide third-party developers access to conversational understanding capabilities, and to identify potentially irrelevant information that may not need to be gathered.